mini.parse();

function RegionFormHandler() {
};

RegionFormHandler.instance = new RegionFormHandler();

//获得全局的区域列表表单对象
RegionFormHandler.regionForm = new mini.Form("regionForm");
RegionFormHandler.formData = {};

//区域类型数据
RegionFormHandler.regionTypeData = [
	{text: '请选择...', value: -1},
	{text: '国家', value: 0},
	{text: '省份', value: 1},
	{text: '城市', value: 2},
	{text: '区县', value: 3}
];
mini.get("bdrType").setData(RegionFormHandler.regionTypeData);

// 区域状态数据
RegionFormHandler.regionStateData = [
	{text: "有效",value: 1},
	{text: "无效",value: 0}
];
mini.get("bdrState").setData(RegionFormHandler.regionStateData);

// 区域代理商提示选项
RegionFormHandler.baiComboxData = {
	baiId : "-1",
	baiName : "请选择..."
};

/**
 * 加载代理商列表
 */
RegionFormHandler.getBaiListCob = function() {
	$.ajax({
		url : __root + "/getBaiListCob.do",
		type : "POST",
		cache : false,
		dataType : 'json',
		success : function(text) {
			var temp = [RegionFormHandler.baiComboxData];
			for (var i = 0; i < text.length; i++) {
				var item = {
					baiId : text[i].baiId,
					baiName : text[i].baiName
				};
				temp[i + 1] = item;
			}
			mini.get("bdrAgent").setData(temp);
		},
		error : function(jqXHR, textStatus, errorThrown) {
			MiniuiTools.miniError("系统提示", jqXHR.responseText);
		}
	});
}

RegionFormHandler.getBaiListCob();

/**
 * 保存（添加或编辑）区域列表数据的方法
 */
RegionFormHandler.save = function(){
	var regionData = RegionFormHandler.regionForm.getData();
	regionData.bdrId = RegionFormHandler.formData.bdrId;
	
    RegionFormHandler.regionForm.validate();
    if (!RegionFormHandler.regionForm.isValid()) return;
    
    if(mini.get("topBdrCb").getChecked()) regionData.bdrParent = "0";
    if(!mini.get("bdrAgent").getEnabled()) regionData.bdrAgent = null;
    var jsonBdrInfo = mini.encode(regionData);
    
    if(regionData.bdrParent == "0"){
    	if(regionData.bdrType != 0){
    		MiniuiTools.miniWarning("系统提示", "父级区域或区域类型选择有误，请重试！");
    	}else{
    		RegionFormHandler.doSaveBdrInfo(jsonBdrInfo);
    	}
    }else{
    	$.ajax({ 
            url: __root + "/getBdrInfoById.do?bdrId=" + regionData.bdrParent,
            cache: false,
            dataType: 'json',
            success: function (text) {
            	// 区县不能作为父亲节点
            	if(text.bdrType == 3 || text.bdrType + 1 != regionData.bdrType){
            		MiniuiTools.miniWarning("系统提示", "父级区域或区域类型选择有误，请重试！");
            	}else{
            		RegionFormHandler.doSaveBdrInfo(jsonBdrInfo);
            	}
                
            }
        });
    }
}

/**
 * 执行保存区域列表数据方法
 * @param {} json
 */
RegionFormHandler.doSaveBdrInfo = function(json){
	$.ajax({
        url: __root + "/saveOrBdrInfo.do",
        type: "POST",
        data: {
        	regionInfo: json,
        	lslUser: gbOperateUser,
    		lslAddress: gbOperateIp
        },
        cache: false,
        success: function (text) {
        	MiniuiTools.miniInfo("系统提示","保存成功！", function(action){
        		RegionFormHandler.closeCurrentWin("save");
        	});
        },
        error: function (jqXHR, textStatus, errorThrown) {
        	MiniuiTools.miniError("系统提示", jqXHR.responseText, function(){
            	RegionFormHandler.closeCurrentWin();
            });
        }
    });
}

/**
 * 读取并选中默认父亲节点
 * @param {} bagParent
 */
RegionFormHandler.getParentBdrInfo = function(bdrParent){
    $.ajax({ 
        url: __root + "/getBdrInfoById.do?bdrId=" + bdrParent,
        cache: false,
        dataType: 'json',
        success: function (parentText) {
        	//动态加载节点时，需同时设置setValue，setText，且必须先setValue，然后再setText
        	if(parentText == null || parentText == "" || parentText.bdrId == null 
        		|| parentText.bdrId == "undefined"
        		|| parentText.bdrId == "0"){
        		mini.get("bdrParentTree").setEnabled(false);
				mini.get("topBdrCb").setChecked(true);
        	}else{
        		mini.get("bdrParentTree").setValue(parentText.bdrId);
	            mini.get("bdrParentTree").setText(parentText.bdrName);
        	}
        }
    });
}

/**
 * 标准方法接口定义
 * @param {} data
 */
RegionFormHandler.passData = function(data) {
    if (data.action == "edit") {
        //跨页面传递的数据对象，克隆后才可以安全使用
        data = mini.clone(data);
        RegionFormHandler.formData.bdrId = data.bdrId;
        //根据id获取对应的区域列表信息
        $.ajax({ 
            url: __root + "/getBdrInfoById.do?bdrId=" + data.bdrId,
            cache: false,
            dataType: 'json',
            success: function (text) {
                RegionFormHandler.regionForm.setData(text);
                RegionFormHandler.getParentBdrInfo(text.bdrParent);
                
                if(text.bdrType != 3) //若果区域类型不是区县，则禁止选择供货商
                	mini.get("bdrAgent").setEnabled(false);
                else
                	mini.get("bdrAgent").setEnabled(true);
            }
        });
        
    }else{
    	if(data.bdrId != null && data.bdrId != "0" && data.bdrType != null){
    		if(data.bdrType >= 0 && data.bdrType <= 2){
    			//选定默认父节点
				mini.get("bdrParentTree").setValue(data.bdrId);
	            mini.get("bdrParentTree").setText(data.bdrName);
	            //选定默认区域类型
				mini.get("bdrType").setValue(data.bdrType + 1);
				
				//若果区域类型不是区县，则禁止选择供货商
				if(data.bdrType + 1 != 3)
					mini.get("bdrAgent").setEnabled(false);
				else
					mini.get("bdrAgent").setEnabled(true);
    		}else{
    			//选定默认区域类型
				mini.get("bdrType").setValue(data.bdrType);
				//启用所属代理商下拉选择框
				mini.get("bdrAgent").setEnabled(true);
    		}
    	}else{
    		//如果没有选中数据，就默认父亲节点为顶级节点
    		mini.get("bdrParentTree").setEnabled(false);
    		mini.get("topBdrCb").setChecked(true);
    		//默认区域类型为国家
    		mini.get("bdrType").setValue(0);
    		//禁用所属代理商下拉选择框
    		mini.get("bdrAgent").setEnabled(false);
    	}
    	
    	//默认区域状态为有效
    	mini.get("bdrState").setValue(1);
    	
    }
}

/**
 * 顶级分类mini-checkbox选择改变事件
 * @param {} e
 */
RegionFormHandler.selectedTopBdrCb = function(e){
	var isChecked = this.getChecked();
 	if(isChecked) mini.get("bdrParentTree").setEnabled(false);
 	else mini.get("bdrParentTree").setEnabled(true);
}

/**
 * 区域类型值改变事件
 */
RegionFormHandler.bdrTypeValueChanged = function(){
	var bdrType = mini.get("bdrType").getValue();	
	if(bdrType != 3) mini.get("bdrAgent").setEnabled(false);
	else mini.get("bdrAgent").setEnabled(true);
}

/**
 * 关闭窗口
 * @param {} action
 */
RegionFormHandler.closeCurrentWin = function(action) {
    if (window.CloseOwnerWindow) window.CloseOwnerWindow(action);
    else window.close();
}

RegionFormHandler.closeMiniWin = function(){
	RegionFormHandler.closeCurrentWin("cancel");
}

function validBdiType(e){ 
	if(e.value == "" || e.value == -1){
		e.errorText = "请选择区域类型！";
        e.isValid = false;
	}
}

function validBai(e){ 
	if(e.value == "-1"){
		e.errorText = "请选择代理商！";
        e.isValid = false;
	}
}